﻿using System;

namespace SharpSqlAnalyzer.nodes
{
	// Token: 0x0200036F RID: 879
	public class TVarDeclStmt : TCustomSqlStatement
	{
		// Token: 0x060024A2 RID: 9378 RVA: 0x00338F91 File Offset: 0x00337191
		public void setAliasItem(TObjectName on)
		{
			this.aliasItem = on;
		}

		// Token: 0x060024A3 RID: 9379 RVA: 0x00338F9A File Offset: 0x0033719A
		public void setDefaultValue(TExpression e)
		{
			this.defaultValue = e;
		}

		// Token: 0x060024A4 RID: 9380 RVA: 0x00338FA3 File Offset: 0x003371A3
		public void setCollateName(TObjectName on)
		{
			this.collateName = on;
		}

		// Token: 0x060024A5 RID: 9381 RVA: 0x00338FAC File Offset: 0x003371AC
		public void setDeclareType(EDeclareType t)
		{
			this.declareType = t;
		}

		// Token: 0x060024A6 RID: 9382 RVA: 0x00338FB5 File Offset: 0x003371B5
		public TVarDeclStmt() : this(EDbVendor.dbvoracle)
		{
		}

		// Token: 0x060024A7 RID: 9383 RVA: 0x00338FBF File Offset: 0x003371BF
		public TVarDeclStmt(EDbVendor dbvendor) : base(dbvendor)
		{
			this.sqlstatementtype = ESqlStatementType.sstplsql_vardecl;
		}

		// Token: 0x060024A8 RID: 9384 RVA: 0x00338FDA File Offset: 0x003371DA
		internal override void buildsql()
		{
		}

		// Token: 0x060024A9 RID: 9385 RVA: 0x00338FDC File Offset: 0x003371DC
		internal override void clear()
		{
		}

		// Token: 0x060024AA RID: 9386 RVA: 0x00338FDE File Offset: 0x003371DE
		internal override string getasprettytext()
		{
			return "";
		}

		// Token: 0x060024AB RID: 9387 RVA: 0x00338FE5 File Offset: 0x003371E5
		internal virtual void iterate(TVisitorAbs pvisitor)
		{
		}

		// Token: 0x170007E4 RID: 2020
		// (get) Token: 0x060024AD RID: 9389 RVA: 0x00338FF0 File Offset: 0x003371F0
		// (set) Token: 0x060024AC RID: 9388 RVA: 0x00338FE7 File Offset: 0x003371E7
		public virtual int WhatDeclared
		{
			get
			{
				return this.whatDeclared;
			}
			set
			{
				this.whatDeclared = value;
			}
		}

		// Token: 0x170007E5 RID: 2021
		// (get) Token: 0x060024AE RID: 9390 RVA: 0x00338FF8 File Offset: 0x003371F8
		// (set) Token: 0x060024AF RID: 9391 RVA: 0x00339000 File Offset: 0x00337200
		public virtual int HowtoSetValue
		{
			get
			{
				return this.howtoSetValue;
			}
			set
			{
				this.howtoSetValue = value;
			}
		}

		// Token: 0x170007E6 RID: 2022
		// (get) Token: 0x060024B0 RID: 9392 RVA: 0x00339009 File Offset: 0x00337209
		// (set) Token: 0x060024B1 RID: 9393 RVA: 0x00339011 File Offset: 0x00337211
		public virtual TExpression Value
		{
			get
			{
				return this.value;
			}
			set
			{
				this.value = value;
			}
		}

		// Token: 0x170007E7 RID: 2023
		// (get) Token: 0x060024B2 RID: 9394 RVA: 0x0033901A File Offset: 0x0033721A
		// (set) Token: 0x060024B3 RID: 9395 RVA: 0x00339022 File Offset: 0x00337222
		public virtual bool NotNull
		{
			get
			{
				return this.NotNull_Renamed;
			}
			set
			{
				this.NotNull_Renamed = value;
			}
		}

		// Token: 0x170007E8 RID: 2024
		// (get) Token: 0x060024B5 RID: 9397 RVA: 0x00339034 File Offset: 0x00337234
		// (set) Token: 0x060024B4 RID: 9396 RVA: 0x0033902B File Offset: 0x0033722B
		public virtual TExpression DefaultValue
		{
			get
			{
				return this.defaultValue;
			}
			set
			{
				this.defaultValue = value;
			}
		}

		// Token: 0x170007E9 RID: 2025
		// (get) Token: 0x060024B7 RID: 9399 RVA: 0x00339045 File Offset: 0x00337245
		// (set) Token: 0x060024B6 RID: 9398 RVA: 0x0033903C File Offset: 0x0033723C
		public virtual TObjectName CollateName
		{
			get
			{
				return this.collateName;
			}
			set
			{
				this.collateName = value;
			}
		}

		// Token: 0x170007EA RID: 2026
		// (get) Token: 0x060024B9 RID: 9401 RVA: 0x00339056 File Offset: 0x00337256
		// (set) Token: 0x060024B8 RID: 9400 RVA: 0x0033904D File Offset: 0x0033724D
		public virtual EDeclareType DeclareType
		{
			get
			{
				return this.declareType;
			}
			set
			{
				this.declareType = value;
			}
		}

		// Token: 0x170007EB RID: 2027
		// (get) Token: 0x060024BB RID: 9403 RVA: 0x00339067 File Offset: 0x00337267
		// (set) Token: 0x060024BA RID: 9402 RVA: 0x0033905E File Offset: 0x0033725E
		public virtual TExpression Error_number
		{
			get
			{
				return this.error_number;
			}
			set
			{
				this.error_number = value;
			}
		}

		// Token: 0x170007EC RID: 2028
		// (get) Token: 0x060024BD RID: 9405 RVA: 0x00339078 File Offset: 0x00337278
		// (set) Token: 0x060024BC RID: 9404 RVA: 0x0033906F File Offset: 0x0033726F
		public virtual TObjectName Exception_name
		{
			get
			{
				return this.exception_name;
			}
			set
			{
				this.exception_name = value;
			}
		}

		// Token: 0x170007ED RID: 2029
		// (get) Token: 0x060024BF RID: 9407 RVA: 0x00339089 File Offset: 0x00337289
		// (set) Token: 0x060024BE RID: 9406 RVA: 0x00339080 File Offset: 0x00337280
		public virtual TObjectName AliasItem
		{
			get
			{
				return this.aliasItem;
			}
			set
			{
				this.aliasItem = value;
			}
		}

		// Token: 0x060024C0 RID: 9408 RVA: 0x00339091 File Offset: 0x00337291
		public override void init(object arg1)
		{
			this.elementName = (TObjectName)arg1;
			this.elementName.ObjectType = 10;
		}

		// Token: 0x060024C1 RID: 9409 RVA: 0x003390AC File Offset: 0x003372AC
		public override void init(object arg1, object arg2)
		{
			this.init(arg1);
			if (arg2 != null)
			{
				this.dataType = (TTypeName)arg2;
			}
		}

		// Token: 0x060024C2 RID: 9410 RVA: 0x003390C4 File Offset: 0x003372C4
		public override void init(object arg1, object arg2, object arg3, object arg4)
		{
			this.init(arg1, arg2);
			this.NotNull_Renamed = (arg3 != null);
			if (arg4 != null)
			{
				if (arg4 is TDummy)
				{
					this.value = (TExpression)((TDummy)arg4).node1;
					this.defaultValue = this.value;
					this.howtoSetValue = ((TDummy)arg4).int1;
					return;
				}
				if (arg4 is TExpression)
				{
					this.defaultValue = (TExpression)arg4;
				}
			}
		}

		// Token: 0x170007EE RID: 2030
		// (get) Token: 0x060024C3 RID: 9411 RVA: 0x0033913C File Offset: 0x0033733C
		// (set) Token: 0x060024C4 RID: 9412 RVA: 0x00339144 File Offset: 0x00337344
		public virtual TTypeName DataType
		{
			get
			{
				return this.dataType;
			}
			set
			{
				this.dataType = value;
			}
		}

		// Token: 0x060024C5 RID: 9413 RVA: 0x0033914D File Offset: 0x0033734D
		public override int doParseStatement(TCustomSqlStatement psql)
		{
			base.doParseStatement(psql);
			if (this.value != null)
			{
				this.value.doParse(this, ESqlClause.unknown);
			}
			return 0;
		}

		// Token: 0x170007EF RID: 2031
		// (get) Token: 0x060024C6 RID: 9414 RVA: 0x0033916D File Offset: 0x0033736D
		// (set) Token: 0x060024C7 RID: 9415 RVA: 0x00339175 File Offset: 0x00337375
		public virtual TObjectName ElementName
		{
			get
			{
				return this.elementName;
			}
			set
			{
				this.elementName = value;
			}
		}

		// Token: 0x060024C8 RID: 9416 RVA: 0x0033917E File Offset: 0x0033737E
		public override void accept(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x060024C9 RID: 9417 RVA: 0x0033918E File Offset: 0x0033738E
		public override void acceptChildren(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x04001C85 RID: 7301
		private TObjectName elementName;

		// Token: 0x04001C86 RID: 7302
		private TTypeName dataType;

		// Token: 0x04001C87 RID: 7303
		private bool NotNull_Renamed;

		// Token: 0x04001C88 RID: 7304
		private TExpression value;

		// Token: 0x04001C89 RID: 7305
		private int howtoSetValue;

		// Token: 0x04001C8A RID: 7306
		public const int whatDeclared_variable = 1;

		// Token: 0x04001C8B RID: 7307
		public const int whatDeclared_constant = 2;

		// Token: 0x04001C8C RID: 7308
		public const int whatDeclared_exception = 3;

		// Token: 0x04001C8D RID: 7309
		public const int whatDeclared_subtype = 4;

		// Token: 0x04001C8E RID: 7310
		public const int whatDeclared_pragma_exception_init = 5;

		// Token: 0x04001C8F RID: 7311
		public const int whatDeclared_pragma_autonomous_transaction = 6;

		// Token: 0x04001C90 RID: 7312
		public const int whatDeclared_pragma_serially_reusable = 7;

		// Token: 0x04001C91 RID: 7313
		public const int whatDeclared_pragma_timestamp = 8;

		// Token: 0x04001C92 RID: 7314
		public const int whatDeclared_pragma_restrict_references = 9;

		// Token: 0x04001C93 RID: 7315
		public const int whatDeclared_pragma_interface = 10;

		// Token: 0x04001C94 RID: 7316
		private int whatDeclared = 1;

		// Token: 0x04001C95 RID: 7317
		private EDeclareType declareType;

		// Token: 0x04001C96 RID: 7318
		private TObjectName collateName;

		// Token: 0x04001C97 RID: 7319
		private TExpression defaultValue;

		// Token: 0x04001C98 RID: 7320
		private TObjectName exception_name;

		// Token: 0x04001C99 RID: 7321
		private TExpression error_number;

		// Token: 0x04001C9A RID: 7322
		private TObjectName aliasItem;
	}
}
